package com.fowo.api.model.purchase.report;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fowo.api.common.mybatis.handlers.SysFileListTypeHandler;
import com.fowo.api.sys.entity.SysFile;
import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serializable;
import java.util.List;
import lombok.Getter;
import lombok.Setter;

/**
 * 采购报表产品视图结果
 */
@Getter
@Setter
public class PurchaseReportProductResult implements Serializable {

  @Schema(title = "产品id")
  private Long id;

  @TableField(value = "`pic_url`", typeHandler = JacksonTypeHandler.class)
  @Schema(title = "图片")
  private List<SysFile> picUrl;

  @Schema(title = "SKU")
  private String sku;

  @Schema(title = "品名")
  private String productName;

  @Schema(title = "MSKU")
  private String msku;

  @Schema(title = "FNSKU")
  private String fnsku;

  @Schema(title = "仓库")
  private String warehouseName;

  @Schema(title = "店铺")
  private String shopName;

  @Schema(title = "分类")
  private String productClassify;

  @Schema(title = "品牌")
  private String productBrand;

  @Schema(title = "供应商")
  private String supplierName;

  @Schema(title = "采购员")
  private String buyer;

  @Schema(title = "负责人")
  private String oversightUid;

  @Schema(title = "采购量")
  private Integer applicationNum;

  @Schema(title = "到货量")
  private Integer quantityReceived;

  @Schema(title = "待到货量")
  private Integer quantityReceive;

  @Schema(title = "良品量")
  private Integer goodProduct;

  @Schema(title = "次品量")
  private Integer defectiveProduct;

  @Schema(title = "退货量")
  private Integer quantityReturn;

  @Schema(title = "平均单价")
  private Float unitPrice;

  @Schema(title = "订货金额")
  private Float applicationAmount;

  @Schema(title = "到货金额")
  private Float receivedAmount;

  @Schema(title = "待到货金额")
  private Float receiveAmount;

  @Schema(title = "退货金额")
  private Float returnAmount;

  @Schema(title = "次品率")
  private Float defectivePer;

  @Schema(title = "抽检次品率")
  private Float qcBadPre;

  @Schema(title = "退货率")
  private Float returnPer;

  @Schema(title = "逾期采购量")
  private Integer overdueNum;

  @Schema(title = "逾期率（按数量）")
  private Float overduePre;

  @Schema(title = "逾期时长")
  private Integer overdueTime;

  @Schema(title = "平均逾期时长")
  private Float overdueTimePre;
}
